package com.Reporte_Evolutivo;

import java.util.ArrayList;
import java.util.concurrent.ExecutionException;

import org.achartengine.ChartFactory;
import org.achartengine.GraphicalView;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import com.JSON.JSONParser_Final;
import com.reportes.R;
import com.reportes.Reporte_Cancelaciones;
import com.reportes.Reporte_Consultas;
import com.reportes.Reporte_MasVendidos;
import com.reportes.login;
import com.reportes.R.drawable;
import com.reportes.R.id;
import com.reportes.R.layout;
import com.reportes.R.menu;
import com.ventas.VentasGenerales;

import clasesGraficas.VentasN1;
import clasesGraficas.evoGraf;
import android.app.ActionBar;
import android.app.Activity;
import android.content.Intent;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.StrictMode;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.LinearLayout;

public class RE_4_Genera_Reporte extends Activity {
	private Button btn_dia= null;
	private Button btn_semana= null;
	private Button btn_quincena= null;
	private Button btn_mes= null;
	private Button btn_gnrReporte= null;
	LinearLayout menuEvolutivo = null;
	private String nombEvento;
	LinearLayout layoutGrafica = null;
	GraphicalView mChartView = null;
	//private DB_evo_final db = null;
	//ArrayList<Registro> arrayReg = null;
	JSONArray registros = null;
	private static String url = "http://10.0.2.2/reportes/evolutivo.php";
	String nomEvento;				//1
    String tipoEvento;				//2
    String subtipoevento;			//3
    String fechaRealizacion;		//5
    String MIS_Date;				//6
    String nombreCanal;				//18
    String Monto;					//20
    String Mes;						//21
    String Quincena;
    String Semana;
    String Dia;
    String Zona;
	private int[] anios;
	private int[] ventasAnio;
	private String tituloGrafica;
    private static final String TAG_evolutivo = "evolutivo";
	private static final String TAG_nomEvento = "nomEvento";
    private static final String TAG_tipoEvento = "tipoEvento";
    private static final String TAG_subtipoevento = "subtipoevento";    
    private static final String TAG_fechaRealizacion = "fechaRealizacion";
    private static final String TAG_MIS_Date = "MIS_Date";
    private static final String TAG_nombreCanal = "nombreCanal";
    private static final String TAG_Anio = "Anio";
    private static final String TAG_Monto = "Monto";
    private static final String TAG_Mes = "Mes";
    private static final String TAG_Quincena = "Quincena";
    private static final String TAG_Semana = "Semana";
    private static final String TAG_Dia = "Dia";
    private static final String TAG_Zona = "Zona";
	/**
	 * @see android.app.Activity#onCreate(Bundle)
	 */
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		nombEvento= this.getIntent().getExtras().getString("nombEvento");
		super.onCreate(savedInstanceState);
		// TODO Put your code here
		setContentView(R.layout.reporte_evolutivo_1);
		StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);
		
		Resources res = getResources();
		Drawable myImage = res.getDrawable(R.drawable.background2);		
		ActionBar actionBar = this.getActionBar();
		actionBar.setBackgroundDrawable(myImage);
		actionBar.setDisplayUseLogoEnabled(true);
		actionBar.setDisplayShowTitleEnabled(false);
		
		/*************************BOTONES*****************************/
		btn_dia = (Button) findViewById(R.id.ButtonDia);

		btn_dia.setOnClickListener(new View.OnClickListener() {
		            public void onClick(View v) {
		                generaGrafDia();
		            }

					
		        });
		
		btn_semana = (Button) findViewById(R.id.ButtonSemana);

		btn_semana.setOnClickListener(new View.OnClickListener() {
		            public void onClick(View v) {
		                generaGrafSemana();
		            }

					
		        });
		
		btn_quincena = (Button) findViewById(R.id.ButtonQuincena);

		btn_quincena.setOnClickListener(new View.OnClickListener() {
		            public void onClick(View v) {
		                generaGrafQuincena();
		            }

					
		        });
		
		btn_mes = (Button) findViewById(R.id.buttonMes);

		btn_mes.setOnClickListener(new View.OnClickListener() {
		            public void onClick(View v) {
		                generaGrafMes();
		            }

					
		        });
		
		btn_gnrReporte = (Button) findViewById(R.id.buttonGR);

		btn_gnrReporte.setOnClickListener(new View.OnClickListener() {
		            public void onClick(View v) {
		                generaReporte();
		            }

					
		        });
		
				
		/***************************************************************/
		
		/**********CREANDO LA BASE DE DATOS****************/
		//db = new DB_evo_final(this);
		
		/**************************************************/
		//arrayReg = new ArrayList();
		registros = new JSONArray();
		
		/*************** JSON ****************/
			 
        // getting JSON string from URL
		try {
		registros = (new JSONParser_Final().execute(url)).get();
		} catch (InterruptedException e1) {
			e1.printStackTrace();
			return;
		} catch (ExecutionException e1) {
			e1.printStackTrace();
			return;
		}
		/*
        try {
        	
        	 // looping through All Registers
		     for(int i = 0; i < registros.length(); i++){
		         JSONObject jsonItem = registros.getJSONObject(i);		  
		         // Storing each json item in variable
		         
		         String nomEvento = jsonItem.getString(TAG_nomEvento);				//1
		         String tipoEvento = jsonItem.getString(TAG_tipoEvento);				//2
		         String subtipoevento = jsonItem.getString(TAG_subtipoevento);			//3		         	
		         String fechaRealizacion = jsonItem.getString(TAG_fechaRealizacion);		//5
		         String MIS_Date = jsonItem.getString(TAG_MIS_Date);				//6
		         String nombreCanal = jsonItem.getString(TAG_nombreCanal);				//18		         
		         int Monto = jsonItem.getInt(TAG_Monto);					//20
		         String Anio = jsonItem.getString(TAG_Anio);
		         int Mes = jsonItem.getInt(TAG_Mes);						//21
		         int Quincena = jsonItem.getInt(TAG_Quincena);						//21
		         int Semana = jsonItem.getInt(TAG_Semana);						//21
		         int Dia = jsonItem.getInt(TAG_Dia);						//21
		         String Zona = jsonItem.getString(TAG_Zona);
		         		         
		         Registro reg = new Registro( nomEvento,  tipoEvento,  subtipoevento, 
		         		 fechaRealizacion,  MIS_Date, nombreCanal,   
		        		 Monto, Anio, Mes,  Quincena,  Semana, Dia, Zona);
		         
		         arrayReg.add(reg);
		     }
		 } catch (JSONException e) {
		     e.printStackTrace();
		 }
        /**************************************************/
        //BORRANDO LA DATA ANTERIOR
        /*db.DeleteTableRows();
        //INSERTANDO A LA BASE DE DATOS
        for (int i = 0; i < arrayReg.size(); i++){
        	db.addContact(arrayReg.get(i));
        	Log.e("Monto "+String.valueOf(i), String.valueOf(arrayReg.get(i).getMonto()));
        	Log.e("Dia "+String.valueOf(i), String.valueOf(arrayReg.get(i).getDia()));
        }*/
        
               
                
	}
	
	private void generaGrafDia() {
		// TODO Auto-generated method stub
		/*ArrayList<Registro> reg = db.getRegistrosDia("Slipknot");
				
		int dias[] = new int[reg.size()];
		int monto[] = new int[reg.size()];
		for (int i = 0; i < reg.size(); i++){
			dias[i]=reg.get(i).getDia();
			monto[i] = reg.get(i).getMonto();
		}
		this.tituloGrafica = "Ventas de la empresa por día";
		generaGrafico(dias, monto, tituloGrafica, 1);*/
	}
	private void generaGrafSemana() {
		// TODO Auto-generated method stub
		
		/*ArrayList<Registro> reg = db.getRegistrosSemana("Slipknot");
		
		int semanas[] = new int[reg.size()];
		int monto[] = new int[reg.size()];
		for (int i = 0; i < reg.size(); i++){
			semanas[i]=reg.get(i).getSemana();
			monto[i] = reg.get(i).getMonto();
		}
		this.tituloGrafica = "Ventas de la empresa por semana";
		generaGrafico(semanas, monto, tituloGrafica, 1);*/
	}
	private void generaGrafQuincena() {
		// TODO Auto-generated method stub
		
		/*ArrayList<Registro> reg = db.getRegistrosQuincena("Slipknot");
		
		int quincena[] = new int[reg.size()];
		int monto[] = new int[reg.size()];
		for (int i = 0; i < reg.size(); i++){
			quincena[i]=reg.get(i).getQuincena();
			monto[i] = reg.get(i).getMonto();
		}
		this.tituloGrafica = "Ventas de la empresa por quincena";
		generaGrafico(quincena, monto, tituloGrafica, 1);*/
		
	}
	private void generaGrafMes() {
		// TODO Auto-generated method stub
		
		/*ArrayList<Registro> reg = db.getRegistrosMes("Slipknot");
		
		int mes[] = new int[reg.size()];
		int monto[] = new int[reg.size()];
		for (int i = 0; i < reg.size(); i++){
			mes[i]=reg.get(i).getMes();
			monto[i] = reg.get(i).getMonto();
		}
		this.tituloGrafica = "Ventas de la empresa por mes";
		generaGrafico(mes, monto, tituloGrafica, 1);*/
		
	}
	private void generaReporte() {
		// TODO Auto-generated method stub
		this.menuEvolutivo = (LinearLayout)findViewById(R.id.menu_evo);
		menuEvolutivo.setVisibility(2); 
	}
	
	private void generaGrafico(int[] x, int[] y, String titulo, int n) {
		// TODO Auto-generated method stub		
		evoGraf eg = new evoGraf();
		eg.ejecutar(x, y, titulo, n);
		this.layoutGrafica = (LinearLayout)findViewById(R.id.evoGraf);
		this.mChartView = ChartFactory.getLineChartView(this,eg.getDataset(), 
				eg.getmRenderer());
		layoutGrafica.removeAllViews();
	    layoutGrafica.addView(mChartView, new LayoutParams(LayoutParams.FILL_PARENT,
		               LayoutParams.FILL_PARENT));
	}


	@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menuprincipal, menu);
        return true;
    }
	
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
	    // Handle item selection
	    switch (item.getItemId()) {
	        case R.id.logout:
	        	Intent logo = new Intent(this,login.class);
	        	startActivity(logo);
	            return true;
	        case R.id.ventas:
	        	Intent ventas = new Intent(this,VentasGenerales.class);
	        	startActivity(ventas);
	            return true;
	        case R.id.consultas:
	        	Intent consultas = new Intent(this,Reporte_Consultas.class);
	        	startActivity(consultas);
	            return true;
	        case R.id.cancelaciones:
	        	Intent cancelaciones = new Intent(this,Reporte_Cancelaciones.class);
	        	startActivity(cancelaciones);
	            return true;
	        case R.id.evolutivo:
	        	Intent evolutivo = new Intent(this,RE_1_Tipo_Eventos.class);
	        	startActivity(evolutivo);
	            return true;
	        case R.id.masvendidos:
	        	Intent masVendidos = new Intent(this,Reporte_MasVendidos.class);
	        	startActivity(masVendidos);
	            return true;
	        case R.id.menuPrincipal:
	        	Intent menu = new Intent(this,Menu.class);
	        	startActivity(menu);
	            return true;
	        default:
	            return super.onOptionsItemSelected(item);
	    }
	}
	
	
}
